home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Delphi Informant Complete 1995 - 2000
/
Delphi Informant Complete 1995 to 2000.iso
/
Delphi Informant Magazine Complete Works SOURCE CODE 1998.rar
/
1998
/
May
/
di9805fn
/
StrTst02.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1998-01-13
|
5KB
|
185 lines
unit StrTst02;
{ Related to my File|New Column on AnsiStrings in Delphi Informant, May, 1998.
This project demonstrates routines in the HyperString library from
EFD Systems. To download the free Delphi 3 *.dcu (HSTR.ZIP) needed
to run this program, visit their Web Site at www.mindspring.com/~efd.
Also, be sure to read the paper on AnsiStrings while you're there.
To report bugs or make suggestions, please E-Mail me at acmdoc@aol.com.
Thanks, and enjoy! Alan C. Moore }
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons;
type
TForm1 = class(TForm)
BitBtn1: TBitBtn;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
Memo1: TMemo;
ActiveWindowsBtn: TButton;
ListBox1: TListBox;
WindowsClassesBtn: TButton;
Label10: TLabel;
Label11: TLabel;
Edit10: TEdit;
Label12: TLabel;
Edit11: TEdit;
Label13: TLabel;
Edit12: TEdit;
Label14: TLabel;
Edit13: TEdit;
procedure FormCreate(Sender: TObject);
procedure ActiveWindowsBtnClick(Sender: TObject);
procedure WindowsClassesBtnClick(Sender: TObject);
procedure Label18Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
ComStrings : TStrings;
procedure ListAllClasses;
procedure ListAllWindows;
procedure GetCurrentMemory;
end;
var
Form1: TForm1;
implementation
uses HyperStr;
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
var
Drv : char;
VolName,
FSys,
Path,
Prefix,
LongName,
Title,
Name: string;
VolSize : DWord;
begin
if GetUser='' then Edit1.Text := 'None' else
Edit1.Text := GetUser;
if GetNetUser='' then Edit2.Text := 'None' else
Edit2.Text := GetNetUser;
Edit3.Text := GetComputer;
Edit4.Text := GetDrives;
Drv := 'F'; {Often used as Network Drive; Substitute your network drive}
if RemoteDrive(Drv) then Edit5.Text := Drv
else Edit5.Text := 'None';
if GetVolume('C', VolName, FSys, VolSize) then
Edit6.Text := VolName;
Edit7.Text := GetWinDir;
Edit8.Text := GetSysDir;
Edit9.Text := GetTmpDir;
Edit15.Text := GetCPU;
Edit16.Text := GetDefaultPrn;
if IsWinNT then
Edit17.Text := 'Yes' else
Edit17.Text := 'No';
Edit13.Text :=GetKeyValues(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion',
'Version,VersionNumber,RegisteredOwner,RegisteredOrganization,ProductId');
GetComList(Memo1.Lines);
GetCurrentMemory;
end;
procedure TForm1.GetCurrentMemory;
var
RAMTotal,
RAMUsed,
PGTotal,
PGUsed:Integer;
begin
GetMemStatus(RAMTotal, RAMUsed, PGTotal, PGUsed);
Edit18.Text := IntToStr(RAMTotal);
Edit10.Text := IntToStr(RAMUsed);
Edit11.Text := IntToStr(PGTotal);
Edit12.Text := IntToStr(PGUsed);
end;
procedure TForm1.ListAllWindows; {Based on Example from HyperStr Help File}
//Retrieve all active windowss and parse them into a listbox
var
S,T,X:AnsiString;
I:Integer;
begin
ListBox1.Clear;
SetDelimiter(#44); //use a comma delimiter
S:=GetWindows; // HyperStr function
I:=1;
repeat
X:=Parse(S,#44,I); //! ',' doesn't work for param 2
if Length(X)>0 then ListBox1.Items.Add(X);
until I=0;
end;
procedure TForm1.ListAllClasses; {Based on Example from HyperStr Help File}
//Retrieve all class names and parse them into a listbox
var
S,T,X:AnsiString;
I:Integer;
begin
ListBox1.Clear;
SetDelimiter(#44); //use a comma delimiter
S:=GetClasses; // HyperStr function
I:=1;
repeat
X:=Parse(S,#44,I); //! ',' doesn't work for param 2
if Length(X)>0 then ListBox1.Items.Add(X);
until I=0;
end;
procedure TForm1.ActiveWindowsBtnClick(Sender: TObject);
begin
ListAllWindows;
end;
procedure TForm1.WindowsClassesBtnClick(Sender: TObject);
begin
ListAllClasses;
end;
procedure TForm1.Label18Click(Sender: TObject);
begin
GetCurrentMemory;
end;
end.